﻿namespace Aguacongas.TheIdServer.BlazorApp.Models
{
    public enum StorageKind
    {
        None,
        EntityFramework,
        Redis,
        AzureStorage,
        FileSystem,
        Registry,
        RavenDb,
        MongoDb
    }

    public class DataProtectionConfigurationBase
    {
        //
        // Summary:
        //     An identifier that uniquely discriminates this application from all other applications
        //     on the machine. The discriminator value is implicitly included in all protected
        //     payloads generated by the data protection system to isolate multiple logical
        //     applications that all happen to be using the same key material.
        //
        // Remarks:
        //     If two different applications need to share protected payloads, they should ensure
        //     that this property is set to the same value across both applications.
        public string ApplicationDiscriminator { get; set; }

        public StorageKind StorageKind { get; set; }

        public string StorageConnectionString { get; set; }

        public string RedisKey { get; set; } = "DataProtection-Keys";

        public KeyProtectionOptions KeyProtectionOptions { get; set; }

    }
}